// 函数组合调试
// NEVER SAY DIE  --> never-say-die

const _ = require("lodash");

// 柯里化改造split
const split = _.curry(function (sep, str) {
    return _.split(str, sep);
});

// 柯里化改造join
const join = _.curry(function (sep, arr) {
    return _.join(arr, sep);
});

// 柯里化改造map
const map = _.curry(function (fn, arr) {
    return _.map(arr, fn);
});

// 混合函数中定义log
// const log = function (v) {
//     console.log(v);
//     return v;
// };

// 升级版log 通过柯里化函数拿到对应位置的信息
const trace = _.curry(function (tag, v) {
    console.log(tag, v);
    return v;
});

const f = _.flowRight(
    join("-"),
    trace("toLower之后"),
    map(_.toLower),
    trace("split之后"),
    split(" ")
);

console.log(f("NEVER SAY DIE"));
